using Godot;
using System;
using Smr;
using Smr.枚举;
using Smr.接口;
using System.Collections.Generic;

public static class 装备属性
{
    private readonly static List<List<结构.装备属性>> 属性基值 =
    [
        [
            // 通用属性
            new()
            {
                属性名 = nameof(I战斗属性.所有属性),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.伤害),
                上限值 = 10,
                下限值 = 2
            },

            // 四维属性
            new()
            {
                属性名 = nameof(I战斗属性.体质),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.爆发),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.精神),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.敏捷),
                上限值 = 10,
                下限值 = 2
            },

            // 战斗属性
            new()
            {
                属性名 = nameof(I战斗属性.体力),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.精力),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.物伤),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.神伤),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.防御),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.速度),
                上限值 = 10,
                下限值 = 2
            },

            // 装备属性
            new()
            {
                属性名 = nameof(I战斗属性.暴击率),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.暴击值),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.命中率),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.命中值),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.韧性),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.抵抗),
                上限值 = 10,
                下限值 = 2
            },

            new()
            {
                属性名 = nameof(I战斗属性.连击率),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.连击数),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.反震率),
                上限值 = 10,
                下限值 = 2
            },
            new()
            {
                属性名 = nameof(I战斗属性.反震度),
                上限值 = 10,
                下限值 = 2
            }
        ]
    ];

    public static 结构.装备属性 取装备属性(E角色称谓 称谓)
    {
        结构.装备属性 返回属性 = 属性基值[(int)称谓][方法.取随机数.Next(0, 属性基值[(int)称谓].Count)];
        返回属性.当前值 = 方法.取随机数.Next((int)返回属性.下限值, (int)返回属性.上限值 + 1);
        return 返回属性;
    }
}
